//创建actions(本质就是对象) 用于响应组件中的动作，可以用于异步
const actions = {
    addValue(context,value){
        if(context.state.sum % 2) {
            console.log('@')
            context.commit('ADD',value);
            // context.state.sum += 1;//这样可以实现但是记住本次对状态的改变开发者工具将无法捕获，因为开发者工具是对mutations对话的
        }
    }
}

//创建mutations(本质也是对象) 用于修改数据(state),必须同步
const mutations = {
    //收到state和要操作数value
    INCREMENT(state, value) {
        state.sum += value;
    },
    DECREMENT(state, value) {
        state.sum -= value;
    },
}

//准备getters用于加工state，将其共享于各个组件当中
const getters = {
    getSums(state){
        return state.sum + 10;
    }
}

//准备state(数据) 存储数据
//类似于各个组件里的computed(计算属性),只不过它是共享的
const state = {
    sum:10
}

//创建并暴露store
export default {
    namespaced: true,   //该模块的命名空间
    state,
    mutations,
    actions,
    getters
}
